from langchain_openai import ChatOpenAI
from langchain.prompts import PromptTemplate
from langchain.chains import LLMChain


# 配置LLM与Prompt（定义Markdown格式规则）
def init_llm_chain():
    # 初始化LLM
    llm = ChatOpenAI(
        api_key="",
        base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
        model="qwen-plus",  # 指定要使用的模型
        temperature=0.2     # temperature=0.2确保格式严谨
    )
    # 定义Prompt模板（明确Markdown生成规则）
    prompt_template = PromptTemplate(
        input_variables=["web_content", "url"],
        template=
        """
        任务：将目标网页内容整理为规范Markdown笔记，严格遵循以下规则：
        1. 提取网页主标题作为一级标题（# 标题），子标题用二级标题（## 子标题），不遗漏核心章节；
        2. 正文段落保留逻辑，关键观点/步骤用无序列表（- 内容）呈现，数据用加粗（**数据**）突出；
        3. 若有代码片段，用 ```语言类型 + 代码 + ``` 包裹（如```python ... ```）；
        4. 删除广告、导航、作者简介等无关内容，仅保留核心知识；
        5. 在笔记末尾添加“来源：{url}”，便于溯源。

        网页内容：
        {web_content}
        """
    )

    # 构建LLM Chain（串联Prompt与LLM）
    return LLMChain(llm=llm, prompt=prompt_template)